[INFO] cloning repository https://github.com/vilhelmlindell/chess-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vilhelmlindell/chess-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilhelmlindell%2Fchess-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilhelmlindell%2Fchess-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e77e1d664a1d61a6f4a6312a1ea5c782896c48ad
[INFO] fixing vilhelmlindell/chess-engine against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilhelmlindell%2Fchess-engine" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  26% (93/354)
Updating files:  27% (96/354)
Updating files:  28% (100/354)
Updating files:  29% (103/354)
Updating files:  30% (107/354)
Updating files:  31% (110/354)
Updating files:  32% (114/354)
Updating files:  33% (117/354)
Updating files:  34% (121/354)
Updating files:  35% (124/354)
Updating files:  36% (128/354)
Updating files:  36% (129/354)
Updating files:  37% (131/354)
Updating files:  38% (135/354)
Updating files:  39% (139/354)
Updating files:  40% (142/354)
Updating files:  41% (146/354)
Updating files:  42% (149/354)
Updating files:  43% (153/354)
Updating files:  44% (156/354)
Updating files:  45% (160/354)
Updating files:  46% (163/354)
Updating files:  47% (167/354)
Updating files:  48% (170/354)
Updating files:  49% (174/354)
Updating files:  50% (177/354)
Updating files:  51% (181/354)
Updating files:  52% (185/354)
Updating files:  53% (188/354)
Updating files:  54% (192/354)
Updating files:  55% (195/354)
Updating files:  56% (199/354)
Updating files:  57% (202/354)
Updating files:  58% (206/354)
Updating files:  59% (209/354)
Updating files:  60% (213/354)
Updating files:  61% (216/354)
Updating files:  61% (218/354)
Updating files:  62% (220/354)
Updating files:  63% (224/354)
Updating files:  64% (227/354)
Updating files:  65% (231/354)
Updating files:  66% (234/354)
Updating files:  67% (238/354)
Updating files:  68% (241/354)
Updating files:  69% (245/354)
Updating files:  70% (248/354)
Updating files:  71% (252/354)
Updating files:  72% (255/354)
Updating files:  73% (259/354)
Updating files:  74% (262/354)
Updating files:  75% (266/354)
Updating files:  76% (270/354)
Updating files:  77% (273/354)
Updating files:  78% (277/354)
Updating files:  79% (280/354)
Updating files:  80% (284/354)
Updating files:  81% (287/354)
Updating files:  82% (291/354)
Updating files:  83% (294/354)
Updating files:  84% (298/354)
Updating files:  85% (301/354)
Updating files:  86% (305/354)
Updating files:  87% (308/354)
Updating files:  88% (312/354)
Updating files:  88% (314/354)
Updating files:  89% (316/354)
Updating files:  90% (319/354)
Updating files:  91% (323/354)
Updating files:  92% (326/354)
Updating files:  93% (330/354)
Updating files:  94% (333/354)
Updating files:  95% (337/354)
Updating files:  96% (340/354)
Updating files:  97% (344/354)
Updating files:  98% (347/354)
Updating files:  99% (351/354)
Updating files: 100% (354/354)
Updating files: 100% (354/354), done.
[INFO] started tweaking git repo https://github.com/vilhelmlindell/chess-engine
[INFO] finished tweaking git repo https://github.com/vilhelmlindell/chess-engine
[INFO] tweaked toml for git repo https://github.com/vilhelmlindell/chess-engine written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vilhelmlindell/chess-engine on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/vilhelmlindell/chess-engine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d
[INFO] running `Command { std: "docker" "start" "748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.11
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling winnow v0.6.24
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling ctor-proc-macro v0.0.4
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking bitflags v2.5.0
[INFO] [stderr]     Checking ctor v0.3.6
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking pyrrhic-rs v0.2.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling toml_edit v0.22.22
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling proc-macro-crate v3.2.0
[INFO] [stderr]    Compiling num_enum_derive v0.7.3
[INFO] [stderr]     Checking num_enum v0.7.3
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking chess_engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/board/zobrist_hash.rs (4 fixes)
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 |         (*TRANSPOSITION_TABLE.as_mut_ptr()).store(entry);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     unsafe { (*TRANSPOSITION_TABLE.as_mut_ptr()).probe(hash) }
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TRANSPOSITION_TABLE.write(TranspositionTable::new());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 |         (*TRANSPOSITION_TABLE.as_mut_ptr()).store(entry);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     unsafe { (*TRANSPOSITION_TABLE.as_mut_ptr()).probe(hash) }
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TRANSPOSITION_TABLE.write(TranspositionTable::new());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/uci.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.70s
[INFO] [stderr] crater-edition-check: chess_engine v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking chess_engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::search::transposition_table::*`
[INFO] [stdout]  --> src/board/board.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::search::transposition_table::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/board/zobrist_hash.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Side`
[INFO] [stdout]  --> src/evaluation/evaluation.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::{Board, Side, TOTAL_MATERIAL_STARTPOS};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::direction::{self, Direction};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_orthogonal_rays`
[INFO] [stdout]  --> src/perft.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::move_generation::attack_tables::{get_between_ray, get_orthogonal_rays};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bound` and `TranspositionEntry`
[INFO] [stdout]  --> src/perft.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::search::transposition_table::{Bound, TranspositionEntry};
[INFO] [stdout]   |                                          ^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `search`
[INFO] [stdout]  --> src/bench.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{board::Board, search::{search, Search, SearchMode, SearchParams}};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/search/search.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `simd`
[INFO] [stdout]   --> src/search/search.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | use core::{hash, simd};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::MAX`
[INFO] [stdout]   --> src/search/search.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::char::MAX;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]   --> src/search/search.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/search/search.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::search::transposition_table::*`
[INFO] [stdout]  --> src/board/board.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::search::transposition_table::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `board`
[INFO] [stdout]    --> src/board/board.rs:781:17
[INFO] [stdout]     |
[INFO] [stdout] 781 |     use crate::{board, move_generation::generate_moves};
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/board/zobrist_hash.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Side`
[INFO] [stdout]  --> src/evaluation/evaluation.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::{Board, Side, TOTAL_MATERIAL_STARTPOS};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::direction::{self, Direction};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_orthogonal_rays`
[INFO] [stdout]  --> src/perft.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::move_generation::attack_tables::{get_between_ray, get_orthogonal_rays};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bound` and `TranspositionEntry`
[INFO] [stdout]  --> src/perft.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::search::transposition_table::{Bound, TranspositionEntry};
[INFO] [stdout]   |                                          ^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `search`
[INFO] [stdout]  --> src/bench.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{board::Board, search::{search, Search, SearchMode, SearchParams}};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/search/search.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `simd`
[INFO] [stdout]   --> src/search/search.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | use core::{hash, simd};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::MAX`
[INFO] [stdout]   --> src/search/search.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::char::MAX;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]   --> src/search/search.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/search/search.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/search/search.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             unimplemented!("iterative deepening needs to be enabled");
[INFO] [stdout]     |             --------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 231 |             // Non-iterative deepening: search to the maximum depth directly
[INFO] [stdout] 232 |             let eval = self.pvs::<{ NodeType::Root as u8 }, false>(board, MAX_DEPTH as u32, -MAX_EVAL, MAX_EVAL, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/board/board.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut board = Self::from_fen(STARTING_FEN);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:113
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |                                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_mov`
[INFO] [stdout]   --> src/perft.rs:83:49
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn search(result: &mut PerftResult, depth: u32, prev_mov: Move, board: &mut Board) -> u64 {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_mov`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/search/search.rs:512:13
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut hash_move = None;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/search/search.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             unimplemented!("iterative deepening needs to be enabled");
[INFO] [stdout]     |             --------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 231 |             // Non-iterative deepening: search to the maximum depth directly
[INFO] [stdout] 232 |             let eval = self.pvs::<{ NodeType::Root as u8 }, false>(board, MAX_DEPTH as u32, -MAX_EVAL, MAX_EVAL, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_moves_new` is never used
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:4
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_move_info` is never used
[INFO] [stdout]    --> src/perft.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn get_move_info(mov: Move, board: &Board, extra_info: bool) -> PerftResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_score` is never used
[INFO] [stdout]   --> src/search/move_ordering.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn move_score(search: &mut Search, mov: Move, board: &Board, ply: u32, hash_move: Option<Move>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 |         (*TRANSPOSITION_TABLE.as_mut_ptr()).store(entry);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     unsafe { (*TRANSPOSITION_TABLE.as_mut_ptr()).probe(hash) }
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TRANSPOSITION_TABLE.write(TranspositionTable::new());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chess_engine` (lib) due to 3 previous errors; 21 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/board/board.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut board = Self::from_fen(STARTING_FEN);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:113
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |                                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_mov`
[INFO] [stdout]   --> src/perft.rs:83:49
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn search(result: &mut PerftResult, depth: u32, prev_mov: Move, board: &mut Board) -> u64 {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_mov`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/search/search.rs:512:13
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut hash_move = None;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_moves_new` is never used
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:4
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_move_info` is never used
[INFO] [stdout]    --> src/perft.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn get_move_info(mov: Move, board: &Board, extra_info: bool) -> PerftResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_score` is never used
[INFO] [stdout]   --> src/search/move_ordering.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn move_score(search: &mut Search, mov: Move, board: &Board, ply: u32, hash_move: Option<Move>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 |         (*TRANSPOSITION_TABLE.as_mut_ptr()).store(entry);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     unsafe { (*TRANSPOSITION_TABLE.as_mut_ptr()).probe(hash) }
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TRANSPOSITION_TABLE.write(TranspositionTable::new());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chess_engine` (lib test) due to 3 previous errors; 22 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d", kill_on_drop: false }`
[INFO] [stdout] 748a3ab8db17cfffe7b50f02a8ba5f1a38a7c053caa1e9ceead7041584175b2d
